package Clases;

import java.util.Dictionary;
import java.util.Enumeration;
import java.util.Hashtable;

public class Diccionario {
       private static Diccionario _Instancia;
       private Dictionary<Integer,String> diccionario = new Hashtable<Integer, String>();

    public static Diccionario Instancia() {
        if (_Instancia == null) {
            _Instancia = new Diccionario();
        }
        return _Instancia;
    }
    public Boolean insert(int RID, String valor) {
        if (diccionario.get(RID) != null) {
            return false;
        } else {
            diccionario.put(RID, valor);
            return true;
        }
    }

    public Boolean delete(int RID) {
        if (diccionario.get(RID) != null) {
            diccionario.remove(RID);
            return true;
        } else {
            return false;
        }
    }

    public Boolean update(int RID, String valor) {
        if (diccionario.get(RID) != null) {
            diccionario.put(RID, valor);
            return true;
        } else {
            return false;
        }
    }

    public String select(int RID) {
        String resultado = diccionario.get(RID);
        if (resultado == null) {
            return "";
        } else {
            return resultado;
        }
    }

    /***
     * Recuperación de registros segun contenido
     * @param consulta
     * @return
     */
    public Dictionary<Integer,String> scan(String consulta) {
       Dictionary<Integer,String> valoresScan = new Hashtable<Integer, String>();
       Enumeration clavesDiccionario = diccionario.keys();
       while(clavesDiccionario.hasMoreElements()){
           Integer clave = (Integer)clavesDiccionario.nextElement();
           String valor = diccionario.get(clave);
           if(valor.equals(consulta)){
               valoresScan.put(clave, valor);
           }
       }
       return valoresScan;
    }


}